package com.wind.taobao.api.trade.product.rest
{
	import com.wind.taobao.api.IPublicAPI;
	import com.wind.taobao.core.exception.InvalidRequestParametersException;
	import com.wind.taobao.core.util.TaobaoUtils;
	import com.wind.taobao.core.webservice.TaobaoRequest;

	/**
	 * taobao.product.get Request
	 * @author fxy
	 *
	 */
	public class ProductGetRequest extends TaobaoRequest implements IPublicAPI
	{
		public override function get method():String
		{
			return "taobao.product.get"
		}
		/**
		 *  Y 	 需返回的字段列表.可选值:Product数据结构中的所有字段;多个字段之间用','分隔.
		 */
		[Bindable]
		public var fields:String="product_id,outer_id,tsc,cid,cat_name,props,props_str,name,binds,binds_str,sale_props,sale_props_str,price,desc,pic_path,productImg,productPropImg,created,modified";
		/**
		 * Product的id.两种方式来查看一个产品:1.传入product_id来查询 2.传入cid和props来查询
		 */
		[Bindable]
		public var product_id:String;
		/**
		 * 商品类目id.调用taobao.itemcats.get.v2获取;必须是叶子类目id,如果没有传product_id,那么cid和props必须要传.
		 */
		[Bindable]
		public var cid:String;
		/**
		 * 关键属性列表.调用taobao.itemprops.get.v2获取类目属性,如果属性是关键属性,再用taobao.itempropvalues.get取得vid.格式:pid:vid;pid:vid.比如:诺基亚N73这个产品的关键属性列表就是:品牌:诺基亚;型号:N73,对应的PV值就是10005:10027;10006:29729.
		 */
		[Bindable]
		public var props:String;

		public override function validate():void
		{
			if (!TaobaoUtils.hasValue(fields))
			{
				throw new InvalidRequestParametersException("请求参数[fields]不能为空");
			}
			if (!TaobaoUtils.hasValue(product_id) || !TaobaoUtils.hasAllValue([cid, props]))
			{
				throw new InvalidRequestParametersException("请求参数[product_id]不能为空或者[cid][props]两个不能为空");
			}
		}
	}
}